package com.jing.yao.modules.resource.service;

import com.jing.yao.bean.KeyValue;
import com.jing.yao.bean.TreeNode;
import com.jing.yao.component.service.YaoBaseService;
import com.jing.yao.modules.resource.controller.param.ResourceParam;
import com.jing.yao.modules.resource.dao.entity.ResourceEntity;

import java.util.List;
import java.util.Set;

/**
 * 菜单管理管理Service
 *
 * @author lirui
 */
public interface ResourceService extends YaoBaseService<ResourceParam, ResourceEntity> {


    /**
     * 获取指定用户的权限
     *
     * @param roles
     * @return
     */
    Set<String> getUserAuthorities(List<String> roles);

    /**
     * 获取当前用户的菜单
     *
     * @param roles
     * @return
     */
    List<ResourceEntity> getUserMenus(List<String> roles);

    /**
     * 获取所有父菜单
     *
     * @return
     */
    public List<KeyValue> listParents();

    /**
     * 获取所有菜单
     *
     * @return
     */
    public List<KeyValue> listMenus();

    /**
     * 获取资源树数据
     *
     * @return
     */
    public List<TreeNode> getTree();

    /**
     * 获取指定角色资源树数据
     *
     * @param roleCode 角色
     * @return
     */
    public List<String> getRoleTree(String roleCode);

    /**
     * 获取指定角色的菜单路径
     *
     * @param roles
     * @return
     */
    public List<String> getAllMenuUrls(List<String> roles);
}
